[INFO] cloning repository https://github.com/Wombatlord/Carlatro
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Wombatlord/Carlatro" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWombatlord%2FCarlatro", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWombatlord%2FCarlatro'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4ebcb360589dd822b5abea21c8dd80eee6573e89
[INFO] checking Wombatlord/Carlatro against try#a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399 for pr-145770
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWombatlord%2FCarlatro" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Wombatlord/Carlatro
[INFO] finished tweaking git repo https://github.com/Wombatlord/Carlatro
[INFO] tweaked toml for git repo https://github.com/Wombatlord/Carlatro written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Wombatlord/Carlatro on toolchain a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Wombatlord/Carlatro already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 34334049e07bd8354db3006e7b954c4f714069c9e20b085ad26458e9af91dd66
[INFO] running `Command { std: "docker" "start" "-a" "34334049e07bd8354db3006e7b954c4f714069c9e20b085ad26458e9af91dd66", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "34334049e07bd8354db3006e7b954c4f714069c9e20b085ad26458e9af91dd66", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "34334049e07bd8354db3006e7b954c4f714069c9e20b085ad26458e9af91dd66", kill_on_drop: false }`
[INFO] [stdout] 34334049e07bd8354db3006e7b954c4f714069c9e20b085ad26458e9af91dd66
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+a2a6e871b05c7b8ecc9a3c8a20db1f39e995e399" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ca026f0dfa596951c4a52f5725c4f0ff59ffb673ec37785107baf9bc284ff263
[INFO] running `Command { std: "docker" "start" "-a" "ca026f0dfa596951c4a52f5725c4f0ff59ffb673ec37785107baf9bc284ff263", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.154
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.17
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking monte v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `deck::Deck` and `self`
[INFO] [stdout]  --> src/hand.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     deck::Deck,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 6 |     suit::Suits,
[INFO] [stdout] 7 |     valid_hands::{self, ValidHands},
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HashSet` and `hash_set`
[INFO] [stdout]  --> src/valid_hands.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 |     collections::{hash_set, HashSet},
[INFO] [stdout]   |                   ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `self` and `suit::Ranks`
[INFO] [stdout]  --> src/valid_hands.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 |     card::{self, Card},
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 8 |     hand::Hand,
[INFO] [stdout] 9 |     suit::Ranks,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `deck::Deck` and `self`
[INFO] [stdout]  --> src/hand.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 |     deck::Deck,
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 6 |     suit::Suits,
[INFO] [stdout] 7 |     valid_hands::{self, ValidHands},
[INFO] [stdout]   |                   ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HashSet` and `hash_set`
[INFO] [stdout]  --> src/valid_hands.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 |     collections::{hash_set, HashSet},
[INFO] [stdout]   |                   ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `self` and `suit::Ranks`
[INFO] [stdout]  --> src/valid_hands.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 |     card::{self, Card},
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 8 |     hand::Hand,
[INFO] [stdout] 9 |     suit::Ranks,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `straight_flush`
[INFO] [stdout]   --> src/main.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let mut straight_flush = 0usize;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_straight_flush`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `four_oak`
[INFO] [stdout]   --> src/main.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let mut four_oak = 0usize;
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_four_oak`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `full_house`
[INFO] [stdout]   --> src/main.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let mut full_house = 0usize;
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_full_house`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `flush`
[INFO] [stdout]   --> src/main.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut flush = 0usize;
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_flush`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `three_oak`
[INFO] [stdout]   --> src/main.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut three_oak = 0usize;
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_three_oak`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `two_pair`
[INFO] [stdout]   --> src/main.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut two_pair = 0usize;
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_two_pair`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pair`
[INFO] [stdout]   --> src/main.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut pair = 0usize;
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_pair`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let mut straight_flush = 0usize;
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let mut four_oak = 0usize;
[INFO] [stdout]    |         ----^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let mut full_house = 0usize;
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut flush = 0usize;
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut three_oak = 0usize;
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut two_pair = 0usize;
[INFO] [stdout]    |         ----^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut pair = 0usize;
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `output_stats` is never used
[INFO] [stdout]   --> src/main.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn output_stats(
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `deal_to_hand` is never used
[INFO] [stdout]   --> src/deck.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 7  | impl Deck {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn deal_to_hand(&mut self, hand: &mut Hand) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `contains` and `sort_by_suit` are never used
[INFO] [stdout]    --> src/hand.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 16  | impl Hand {
[INFO] [stdout]     | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn contains(&self) -> Vec<ValidHands> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn sort_by_suit(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Blank` is never constructed
[INFO] [stdout]  --> src/suit.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum Suits {
[INFO] [stdout]   |          ----- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 7 |     Blank,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Suits` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_str` is never used
[INFO] [stdout]   --> src/suit.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Suits {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 11 |     pub fn to_str(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `straight_flush`
[INFO] [stdout]   --> src/main.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let mut straight_flush = 0usize;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_straight_flush`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `four_oak`
[INFO] [stdout]   --> src/main.rs:15:13
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let mut four_oak = 0usize;
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_four_oak`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `full_house`
[INFO] [stdout]   --> src/main.rs:16:13
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let mut full_house = 0usize;
[INFO] [stdout]    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_full_house`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `flush`
[INFO] [stdout]   --> src/main.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut flush = 0usize;
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_flush`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `three_oak`
[INFO] [stdout]   --> src/main.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut three_oak = 0usize;
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_three_oak`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `two_pair`
[INFO] [stdout]   --> src/main.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut two_pair = 0usize;
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_two_pair`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pair`
[INFO] [stdout]   --> src/main.rs:21:13
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut pair = 0usize;
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_pair`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 |     let mut straight_flush = 0usize;
[INFO] [stdout]    |         ----^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let mut four_oak = 0usize;
[INFO] [stdout]    |         ----^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let mut full_house = 0usize;
[INFO] [stdout]    |         ----^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut flush = 0usize;
[INFO] [stdout]    |         ----^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut three_oak = 0usize;
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut two_pair = 0usize;
[INFO] [stdout]    |         ----^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let mut pair = 0usize;
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `output_stats` is never used
[INFO] [stdout]   --> src/main.rs:80:4
[INFO] [stdout]    |
[INFO] [stdout] 80 | fn output_stats(
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_card_value` is never used
[INFO] [stdout]   --> src/card.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Card {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub fn from_card_value(card_value: usize, mut suit: Option<Suits>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `deal_to_hand` is never used
[INFO] [stdout]   --> src/deck.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 7  | impl Deck {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub fn deal_to_hand(&mut self, hand: &mut Hand) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `default`, `held_suits`, `held_suits_as_hands`, `get_run_length_hashmap`, `contains`, and `sort_by_suit` are never used
[INFO] [stdout]    --> src/hand.rs:17:12
[INFO] [stdout]     |
[INFO] [stdout] 16  | impl Hand {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 17  |     pub fn default() -> Hand {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49  |     pub fn held_suits(&self) -> HashMap<Suits, Vec<usize>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57  |     pub fn held_suits_as_hands(&self) -> HashMap<Suits, Hand> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69  |     pub fn get_run_length_hashmap(&self) -> HashMap<usize, usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub fn contains(&self) -> Vec<ValidHands> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn sort_by_suit(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/valid_hands.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum ValidHands {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 14 |     Pair(Card, Card),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 15 |     TwoPair(Card, Card, Card, Card),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 16 |     ThreeOAK(Card, Card, Card),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 17 |     Straight(Card, Card, Card, Card, Card),
[INFO] [stdout] 18 |     Flush(Card, Card, Card, Card, Card),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 19 |     FullHouse(Card, Card, Card, Card, Card),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 20 |     FourOAK(Card, Card, Card, Card),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 21 |     StraightFlush(Card, Card, Card, Card, Card),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ValidHands` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `has_n_of_a_kind`, `has_two_pair`, `has_full_house`, `has_straight_flush`, and `detect_flush` are never used
[INFO] [stdout]    --> src/valid_hands.rs:58:12
[INFO] [stdout]     |
[INFO] [stdout] 57  | impl ValidHands {
[INFO] [stdout]     | --------------- associated functions in this implementation
[INFO] [stdout] 58  |     pub fn has_n_of_a_kind(hand: Hand, n: usize) -> Option<(ValidHands, Hand)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 94  |     pub fn has_two_pair(hand: Hand) -> Option<(ValidHands, Hand)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn has_full_house(hand: Hand) -> Option<(ValidHands, Hand)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn has_straight_flush(hand: Hand) -> Option<(ValidHands, Hand)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub fn detect_flush(hand: Hand) -> Option<(ValidHands, Hand)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Blank` is never constructed
[INFO] [stdout]  --> src/suit.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum Suits {
[INFO] [stdout]   |          ----- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 7 |     Blank,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Suits` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_str` is never used
[INFO] [stdout]   --> src/suit.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Suits {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 11 |     pub fn to_str(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.33s
[INFO] running `Command { std: "docker" "inspect" "ca026f0dfa596951c4a52f5725c4f0ff59ffb673ec37785107baf9bc284ff263", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ca026f0dfa596951c4a52f5725c4f0ff59ffb673ec37785107baf9bc284ff263", kill_on_drop: false }`
[INFO] [stdout] ca026f0dfa596951c4a52f5725c4f0ff59ffb673ec37785107baf9bc284ff263
